home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWABXL10.ZIP / LIST.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-06-12  |  15KB  |  1,257 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  TBOOLEAN001(60)
  20.     Boolean  TBOOLEAN002(60)
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Boolean  BOOLEAN010
  29.     Boolean  BOOLEAN012
  30.     Boolean  BOOLEAN014
  31.     Boolean  BOOLEAN015
  32.     Boolean  BOOLEAN016
  33.     Boolean  BOOLEAN017
  34.     DWord    TDWORD001(60)
  35.     DWord    DWORD002
  36.     DWord    DWORD003
  37.     Date     DATE001
  38.     Date     DATE002
  39.     String   STRING001
  40.     String   STRING002
  41.     String   STRING003
  42.     String   STRING004
  43.     String   STRING005
  44.     String   STRING006
  45.     String   STRING007
  46.     String   STRING008
  47.     String   STRING009
  48.     String   TSTRING010(10)
  49.     String   STRING011
  50.     String   TSTRING012(60)
  51.     String   TSTRING013(60)
  52.     String   STRING014
  53.     String   STRING015
  54.     String   STRING016
  55.     String   STRING017
  56.     String   STRING018
  57.     String   STRING019
  58.     String   STRING020
  59.     String   STRING021
  60.     String   STRING022
  61.     String   STRING023
  62.     String   STRING024
  63.     String   STRING025
  64.     String   STRING027
  65.     String   STRING034
  66.     String   STRING035
  67.     String   STRING036
  68.     String   STRING037
  69.     String   STRING038
  70.     String   STRING039
  71.     String   STRING040
  72.     String   STRING041
  73.     String   STRING042
  74.     Time     TIME001
  75.     Time     TIME002
  76.     Int      INT001
  77.     Int      INT002
  78.     Int      TINT003(60)
  79.     Int      INT004
  80.     Int      INT005
  81.     Int      INT006
  82.     Int      INT009
  83.     Int      INT010
  84.     Int      TINT011(10)
  85.     Int      TINT012(10)
  86.     Int      INT013
  87.     Int      INT014
  88.     Int      INT015
  89.     Int      INT017
  90.     Int      INT019
  91.     Int      INT023
  92.     Int      INT024
  93.     Int      INT025
  94.     Int      INT027
  95.     Int      INT028
  96.     Int      INT029
  97.     Int      INT030
  98.     Int      INT031
  99.     Int      INT032
  100.     Int      INT033
  101.     Int      INT034
  102.     Int      INT035
  103.     Int      INT040
  104.     Int      INT041
  105.     Int      INT042
  106.     Int      INT043
  107.     Int      INT044
  108.     Int      INT048
  109.     Int      INT049
  110.     Int      INT050
  111.     Int      INT051
  112.     Int      INT052
  113.     Int      INT055
  114.     Int      INT056
  115.     BigStr   BIGSTR001
  116.     BigStr   BIGSTR002
  117.     Declare  Function FUNCTION001(String STRING043, String STRING044, Int INT057) Boolean
  118.     Declare  Function FUNCTION002(Int INT053, Int INT054) Int
  119.     Declare  Function FUNCTION003(Int INT026) Int
  120.     Declare  Function FUNCTION004(Int INT007, String STRING026, Int INT008) Int
  121.     Declare  Function FUNCTION005(Int INT018, String STRING028) Int
  122.     Declare  Procedure PROC001(Var String STRING029, Var Int INT020)
  123.     Declare  Procedure PROC002(String STRING033, Int INT022)
  124.     Declare  Procedure PROC003(Int INT037, Int INT038, Var Boolean BOOLEAN011, Var Int INT039)
  125.     Declare  Procedure PROC004(Int INT045, Int INT046, Var Boolean BOOLEAN013, Var Int INT047)
  126.     Declare  Procedure PROC005(Int INT016)
  127.     Declare  Procedure PROC006()
  128.     Declare  Procedure PROC007(Int INT036)
  129.     Declare  Procedure PROC008(BigStr BIGSTR003)
  130.  
  131. ;------------------------------------------------------------------------------
  132.  
  133.     PROC006()
  134.     While (1) Do
  135.         PROC001(STRING014, INT004)
  136.         If (BOOLEAN003) PrintLn "Using dir ", STRING014, " ", String(INT004)
  137.         PROC002(STRING014, INT004)
  138.     EndWhile
  139.     End
  140.  
  141. ;------------------------------------------------------------------------------
  142.  
  143.     Procedure PROC006()
  144.  
  145.     BOOLEAN003 = 0
  146.     INT006 = ToInteger(PCBMac("@NUMDIR@"))
  147.     STRING001 = PPEPath() + "list.cfg"
  148.     If (TokCount() > 0) Then
  149.         BOOLEAN005 = 1
  150.         STRING015 = GetToken()
  151.         If (STRING015 == "U") Then
  152.             INT004 = INT006
  153.             Goto LABEL001
  154.         Endif
  155.         INT004 = ToInt(STRING015)
  156.     Endif
  157.     :LABEL001
  158.     Tokenize ReadLine(STRING001, 1)
  159.     INT005 = GetToken()
  160.     If (GetToken() == "Y") BOOLEAN004 = 1
  161.     GetUser
  162.     If (BOOLEAN005) Goto LABEL002
  163.     Newline
  164.     PrintLn "@X08[@X07PWA@X08] @X07Extended DirList v1.0 @X08[@X0FC@X08] @X07BlackCat"
  165.     Newline
  166.     :LABEL002
  167.     STRING006 = GetToken()
  168.     STRING007 = GetToken()
  169.     STRING008 = GetToken()
  170.     STRING017 = GetToken()
  171.     STRING019 = GetToken()
  172.     STRING020 = GetToken()
  173.     STRING018 = GetToken()
  174.     STRING021 = GetToken()
  175.     STRING022 = GetToken()
  176.     STRING024 = GetToken()
  177.     STRING023 = GetToken()
  178.     STRING025 = GetToken()
  179.     TSTRING010(1) = STRING023 + "B" + STRING024 + "ack"
  180.     TSTRING010(2) = STRING023 + "F" + STRING024 + "orward"
  181.     TSTRING010(3) = STRING023 + "T" + STRING024 + "op"
  182.     TSTRING010(4) = STRING023 + "E" + STRING024 + "nd"
  183.     TSTRING010(5) = STRING023 + "L" + STRING024 + "ength"
  184.     TSTRING010(6) = STRING023 + "R" + STRING024 + "edisp"
  185.     TSTRING010(7) = STRING023 + "Q" + STRING024 + "uit"
  186.     STRING011 = STRING025
  187.     INT001 = 7
  188.     STRING009 = Upper(ReadLine(STRING001, 3))
  189.     If (STRING009 == "N") BOOLEAN006 = 1
  190.     STRING002 = ReadLine(STRING001, 4)
  191.     STRING004 = ReadLine(STRING001, 5)
  192.     STRING003 = ReadLine(STRING001, 6)
  193.     STRING005 = ReadLine(STRING001, 7)
  194.  
  195.     EndProc
  196.  
  197.  
  198. ;------------------------------------------------------------------------------
  199.  
  200.     Function FUNCTION004(Int INT007, String STRING026, Int INT008) Int
  201.  
  202.     Int      INT010
  203.     Int      TINT011(10)
  204.     Int      TINT012(10)
  205.     Int      INT013
  206.     Int      INT014
  207.     Int      INT015
  208.     String   STRING027
  209.     Int      INT016
  210.  
  211.     INT013 = GetX()
  212.     INT014 = GetY()
  213.     For INT010 = 1 To INT001
  214.         TINT011(INT010) = GetX()
  215.         TINT012(INT010) = GetY()
  216.         Print TSTRING010(INT010)
  217.         Print " "
  218.     Next
  219.     If (INT007 < 0) Then
  220.         INT015 = INT002
  221.     Else
  222.         INT015 = INT007
  223.     Endif
  224.     PROC005(TINT011(INT015))
  225.     Print STRING011, StripAtx(TSTRING010(INT015))
  226.     While (1) Do
  227.         STRING027 = Inkey()
  228.         If (Upper(STRING027) == Chr(13)) Then
  229.             DefColor
  230.             FUNCTION004 = INT015
  231.             Break
  232.             Continue
  233.         Endif
  234.         If ((((Upper(STRING027) == "RIGHT") || (Upper(STRING027) == "DOWN")) || (Upper(STRING027) == " ")) || (Upper(STRING027) == Chr(9))) Then
  235.             If ((STRING027 == "DOWN") && (INT008 == 1)) Then
  236.                 INT002 = INT015
  237.                 FUNCTION004 = -2
  238.                 Return
  239.             Endif
  240.             If (((STRING027 == " ") || (STRING027 == Chr(9))) && (INT008 == 1)) Then
  241.                 INT002 = INT015
  242.                 FUNCTION004 = -2
  243.                 Return
  244.             Endif
  245.             PROC005(TINT011(INT015))
  246.             Print TSTRING010(INT015)
  247.             If (INT015 == INT001) Then
  248.                 INT015 = 1
  249.                 Goto LABEL003
  250.             Endif
  251.             Inc INT015
  252.             :LABEL003
  253.             PROC005(TINT011(INT015))
  254.             Print STRING011, StripAtx(TSTRING010(INT015))
  255.             Continue
  256.         Endif
  257.         If (Upper(STRING027) == "PGDN") Then
  258.             If (INT008 == 1) Then
  259.                 FUNCTION004 = 2
  260.                 Return
  261.             Endif
  262.             Continue
  263.         Endif
  264.         If (Upper(STRING027) == "PGUP") Then
  265.             If (INT008 == 1) Then
  266.                 FUNCTION004 = 1
  267.                 Return
  268.             Endif
  269.             Continue
  270.         Endif
  271.         If ((Upper(STRING027) == "LEFT") || (Upper(STRING027) == "UP")) Then
  272.             If ((STRING027 == "UP") && (INT008 == 1)) Then
  273.                 INT002 = INT015
  274.                 FUNCTION004 = -1
  275.                 Return
  276.             Endif
  277.             PROC005(TINT011(INT015))
  278.             Print TSTRING010(INT015)
  279.             If (INT015 == 1) Then
  280.                 INT015 = INT001
  281.                 Goto LABEL004
  282.             Endif
  283.             Dec INT015
  284.             :LABEL004
  285.             PROC005(TINT011(INT015))
  286.             Print STRING011, StripAtx(TSTRING010(INT015))
  287.             Continue
  288.         Endif
  289.         If (Upper(STRING027) == "END") Then
  290.             PROC005(TINT011(INT015))
  291.             Print TSTRING010(INT015)
  292.             INT015 = INT001
  293.             PROC005(TINT011(INT015))
  294.             Print STRING011, StripAtx(TSTRING010(INT015))
  295.             Continue
  296.         Endif
  297.         If (Upper(STRING027) == "HOME") Then
  298.             PROC005(TINT011(INT015))
  299.             Print TSTRING010(INT015)
  300.             INT015 = 1
  301.             PROC005(TINT011(INT015))
  302.             Print STRING011, StripAtx(TSTRING010(INT015))
  303.             Continue
  304.         Endif
  305.         If (Upper(STRING027) == "?") Then
  306.             If (STRING026 <> "") Then
  307.                 SaveScrn
  308.                 StartDisp 2
  309.                 DispFile STRING026, 1 + 4
  310.                 Wait
  311.                 RestScrn
  312.                 StartDisp 1
  313.             Endif
  314.             Continue
  315.         Endif
  316.         If (Upper(STRING027) == "") Then
  317.             Continue
  318.         Endif
  319.         For INT010 = 1 To INT001
  320.             If (Upper(STRING027) == Left(Strip(StripAtx(TSTRING010(INT010)), " "), 1)) Then
  321.                 PROC005(TINT011(INT015))
  322.                 Print TSTRING010(INT015)
  323.                 INT015 = INT010
  324.                 PROC005(TINT011(INT015))
  325.                 Print STRING011, StripAtx(TSTRING010(INT015))
  326.                 KbdStuff Chr(13)
  327.                 Break
  328.             Endif
  329.         Next
  330.     EndWhile
  331.  
  332.     EndFunc
  333.  
  334.  
  335. ;------------------------------------------------------------------------------
  336.  
  337.     Procedure PROC005(Int INT016)
  338.  
  339.     Int      INT017
  340.  
  341.     INT017 = GetX()
  342.     If (INT017 > INT016) Then
  343.         Backup INT017 - INT016
  344.     ElseIf (INT017 < INT016) Then
  345.         Forward INT016 - INT017
  346.     Endif
  347.  
  348.     EndProc
  349.  
  350.  
  351. ;------------------------------------------------------------------------------
  352.  
  353.     Function FUNCTION005(Int INT018, String STRING028) Int
  354.  
  355.     String   STRING029
  356.  
  357.     FUNCTION005 = FUNCTION004(INT018, STRING028, 1)
  358.  
  359.     EndFunc
  360.  
  361.  
  362. ;------------------------------------------------------------------------------
  363.  
  364.     Procedure PROC001(Var String STRING029, Var Int INT020)
  365.  
  366.     String   STRING030
  367.     String   STRING031
  368.     String   STRING032
  369.     Int      INT021
  370.  
  371.     FreshLine
  372.     STRING030 = ReadLine(PCBDat(), 31) + ".@@@"
  373.     While (1) Do
  374.         If (BOOLEAN005) Goto LABEL005
  375.         FreshLine
  376.         STRING031 = ""
  377.         InputStr STRING005 + "_", STRING031, 7, 30, Mask_Num() + "U", 0 + 8
  378.         Goto LABEL006
  379.         :LABEL005
  380.         STRING031 = String(INT020)
  381.         BOOLEAN005 = 0
  382.         :LABEL006
  383.         If (STRING031 == "") Then
  384.             DefColor
  385.             FreshLine
  386.             End
  387.             Continue
  388.         Endif
  389.         If (Upper(STRING031) == "U") Then
  390.             INT020 = INT006
  391.             Break
  392.             Continue
  393.         Endif
  394.         INT020 = STRING031
  395.         If ((INT020 >= 1) && (INT020 <= INT006)) Break
  396.     EndWhile
  397.     FClose -1
  398.     If (INT020 == INT006) Then
  399.         FClose 1
  400.         FOpen 1, STRING030, 0, 0
  401.         FRead 1, INT021, 2
  402.         FSeek 1, CurConf() * INT021 + 2 + 156, 0
  403.         FRead 1, STRING029, 29
  404.         If (BOOLEAN003) PrintLn "Dir = ", STRING029
  405.         FClose 1
  406.         Return
  407.     Else
  408.         FOpen 1, STRING030, 0, 0
  409.         FRead 1, INT021, 2
  410.         FSeek 1, CurConf() * INT021 + 2 + 482, 0
  411.         FRead 1, STRING032, 33
  412.         If (BOOLEAN003) PrintLn "Using dir.lst: ", STRING032
  413.         FClose 1
  414.         If (Exist(STRING032)) Goto LABEL007
  415.         PrintLn "Error reading ", STRING032
  416.         Wait
  417.         End
  418.         :LABEL007
  419.         FOpen 1, STRING032, 0, 0
  420.         FSeek 1, 96 * (ToInt(INT020) - 1), 0
  421.         If (Ferr(1)) Then
  422.             PrintLn "Error reading ", STRING032
  423.             Wait
  424.             End
  425.         Else
  426.             FRead 1, STRING029, 30
  427.             STRING029 = RTrim(STRING029, " ")
  428.         Endif
  429.         FClose 1
  430.     Endif
  431.  
  432.     EndProc
  433.  
  434.  
  435. ;------------------------------------------------------------------------------
  436.  
  437.     Procedure PROC002(String STRING033, Int INT022)
  438.  
  439.     String   STRING034
  440.     Int      INT023
  441.     Int      INT024
  442.     Boolean  BOOLEAN007
  443.     Boolean  BOOLEAN008
  444.     Int      INT025
  445.  
  446.     STRING034 = STRING033 + ".idx"
  447.     If (BOOLEAN003) PrintLn "Checking Idx ", STRING034
  448.     If (!FUNCTION001(STRING033, STRING034, INT022)) Return
  449.     FOpen 1, STRING034, 0, 0
  450.     FOpen 2, STRING033, 0, 0
  451.     StartDisp 1
  452.     If (BOOLEAN004) Then
  453.         INT023 = 1
  454.         BOOLEAN008 = 0
  455.         FSeek 1, 0, 2
  456.     Else
  457.         INT023 = 2
  458.         BOOLEAN008 = 1
  459.         FSeek 1, 16, 0
  460.     Endif
  461.     INT024 = 0
  462.     While (1) Do
  463.         If (INT023 == 1) Then
  464.             If (BOOLEAN008 && (INT024 > 0)) Then
  465.                 If (BOOLEAN003) PrintLn "SEEEEEEEEEEEKING Backwards - ", String(INT024 * 16)
  466.                 If (BOOLEAN003) Wait
  467.                 FSeek 1, -INT024 * 16, 1
  468.             Endif
  469.             PROC003(1, 2, BOOLEAN007, INT024)
  470.             If (BOOLEAN007) Then
  471.                 BOOLEAN007 = 0
  472.                 FClose 1
  473.                 FOpen 1, STRING034, 0, 0
  474.                 FSeek 1, 16, 0
  475.             Endif
  476.             If (BOOLEAN003) PrintLn "Entriesread = ", String(INT024)
  477.             If (BOOLEAN003) Wait
  478.             BOOLEAN008 = 0
  479.             If (INT025) Then
  480.                 INT023 = FUNCTION002(INT023, 2)
  481.                 INT023 = -2
  482.                 INT025 = 0
  483.                 Continue
  484.                 Goto LABEL008
  485.             Endif
  486.             INT023 = FUNCTION002(INT023, 1)
  487.             :LABEL008
  488.             Continue
  489.         Endif
  490.         If (INT023 == 2) Then
  491.             If (!BOOLEAN008 && (INT024 > 0)) Then
  492.                 If (BOOLEAN003) PrintLn "SEEEEEEEEEEEKING Backwards - ", String(INT024 * 16)
  493.                 If (BOOLEAN003) Wait
  494.                 FSeek 1, INT024 * 16, 1
  495.             Endif
  496.             PROC004(1, 2, BOOLEAN007, INT024)
  497.             If (BOOLEAN003) PrintLn "Entriesread = ", String(INT024)
  498.             If (BOOLEAN003) Wait
  499.             If (BOOLEAN007) Then
  500.                 BOOLEAN007 = 0
  501.                 FClose 1
  502.                 FOpen 1, STRING034, 0, 0
  503.                 FSeek 1, 0, 2
  504.             Endif
  505.             BOOLEAN008 = 1
  506.             If (INT025) Then
  507.                 INT023 = FUNCTION002(INT023, 2)
  508.                 INT023 = -2
  509.                 INT025 = 0
  510.                 Continue
  511.                 Goto LABEL009
  512.             Endif
  513.             INT023 = FUNCTION002(INT023, 1)
  514.             :LABEL009
  515.             Continue
  516.         Endif
  517.         If (INT023 == 3) Then
  518.             FSeek 1, 16, 0
  519.             BOOLEAN008 = 1
  520.             INT023 = 2
  521.             Continue
  522.         Endif
  523.         If (INT023 == 4) Then
  524.             FSeek 1, 0, 2
  525.             BOOLEAN008 = 0
  526.             INT023 = 1
  527.             Continue
  528.         Endif
  529.         If (INT023 == 5) Then
  530.             Backup 80
  531.             STRING015 = ScrText(GetX(), GetY(), 80, 1)
  532.             ClrEol
  533.             STRING016 = "0"
  534.             InputStr "@X07Description length [1-60]: _", STRING016, 7, 2, Mask_Num(), 0
  535.             If (STRING016 <> "") Then
  536.                 INT005 = ToInt(STRING016)
  537.                 If (INT005 < 0) INT005 = 61
  538.                 If (INT005 > 60) INT005 = 61
  539.             Endif
  540.             Backup 80
  541.             ClrEol
  542.             Print STRING015
  543.             If (BOOLEAN008) Goto LABEL010
  544.             FSeek 1, INT024 * 16, 1
  545.             INT023 = 1
  546.             Goto LABEL011
  547.             :LABEL010
  548.             FSeek 1, -INT024 * 16, 1
  549.             INT023 = 2
  550.             :LABEL011
  551.             Continue
  552.         Endif
  553.         If (INT023 == -1) Then
  554.             INT023 = FUNCTION003(-1)
  555.             If (INT023 == 0) Then
  556.                 INT023 = FUNCTION002(-1, 0)
  557.                 Goto LABEL012
  558.             Endif
  559.             INT025 = -1
  560.             :LABEL012
  561.             Continue
  562.         Endif
  563.         If (INT023 == -2) Then
  564.             INT023 = FUNCTION003(-2)
  565.             If (INT023 == 0) Then
  566.                 INT023 = FUNCTION002(-2, 0)
  567.                 Goto LABEL013
  568.             Endif
  569.             INT025 = -2
  570.             :LABEL013
  571.             Continue
  572.         Endif
  573.         If (INT023 == 6) Then
  574.             If (BOOLEAN008) Goto LABEL014
  575.             FSeek 1, INT024 * 16, 1
  576.             INT023 = 1
  577.             Goto LABEL015
  578.             :LABEL014
  579.             FSeek 1, -INT024 * 16, 1
  580.             INT023 = 2
  581.             :LABEL015
  582.             Continue
  583.         Endif
  584.         If (INT023 == 7) Then
  585.             Break
  586.         Endif
  587.     EndWhile
  588.     FClose 1
  589.     FClose 2
  590.  
  591.     EndProc
  592.  
  593.  
  594. ;------------------------------------------------------------------------------
  595.  
  596.     Function FUNCTION003(Int INT026) Int
  597.  
  598.     String   STRING035
  599.     String   STRING036
  600.     Int      INT028
  601.     Int      INT029
  602.     Int      INT030
  603.     Boolean  BOOLEAN009
  604.     Boolean  BOOLEAN010
  605.     Int      INT031
  606.     Int      INT032
  607.     String   STRING037
  608.     String   STRING038
  609.     Int      INT033
  610.     Int      INT034
  611.     Int      INT035
  612.     Int      INT036
  613.  
  614.     Print Chr(27) + "[s"
  615.     Backup 80
  616.     DefColor
  617.     ClrEol
  618.     Print STRING004
  619.     INT030 = 0
  620.     INT028 = 0
  621.     INT029 = 0
  622.     While (1) Do
  623.         Inc INT028
  624.         ScrFile INT028, STRING035
  625.         If (STRING035 == "") Then
  626.             Break
  627.             Continue
  628.         Endif
  629.         TSTRING013(INT029) = STRING035
  630.         TINT003(INT029) = INT028
  631.         TBOOLEAN001(INT029) = 0
  632.         TBOOLEAN002(INT029) = 0
  633.         Inc INT029
  634.     EndWhile
  635.     If (INT029 == 0) Then
  636.         Print Chr(27) + "[u"
  637.         Backup 80
  638.         FUNCTION003 = 0
  639.         Return
  640.     Endif
  641.     If (INT026 == -1) Then
  642.         INT031 = INT029 - 1
  643.     Else
  644.         INT031 = 0
  645.     Endif
  646.     INT032 = 0
  647.     BOOLEAN009 = 0
  648.     While (1) Do
  649.         AnsiPos 1, TINT003(INT031)
  650.         Print STRING022, TSTRING013(INT031)
  651.         While (1) Do
  652.             STRING037 = Inkey()
  653.             If (Upper(STRING037) == "HOME") Then
  654.                 AnsiPos 1, TINT003(INT031)
  655.                 Print STRING017, TSTRING013(INT031)
  656.                 INT031 = 0
  657.                 Break
  658.                 Continue
  659.             Endif
  660.             If (Upper(STRING037) == "END") Then
  661.                 AnsiPos 1, TINT003(INT031)
  662.                 Print STRING017, TSTRING013(INT031)
  663.                 INT031 = INT029 - 1
  664.                 Break
  665.                 Continue
  666.             Endif
  667.             If (Upper(STRING037) == "PGDN") Then
  668.                 AnsiPos 1, TINT003(INT031)
  669.                 Print STRING017, TSTRING013(INT031)
  670.                 Print Chr(27) + "[u"
  671.                 INT030 = 2
  672.                 BOOLEAN009 = 1
  673.                 Break
  674.                 Continue
  675.             Endif
  676.             If (Upper(STRING037) == "PGUP") Then
  677.                 AnsiPos 1, TINT003(INT031)
  678.                 Print STRING017, TSTRING013(INT031)
  679.                 Print Chr(27) + "[u"
  680.                 INT030 = 1
  681.                 BOOLEAN009 = 1
  682.                 Break
  683.                 Continue
  684.             Endif
  685.             If (((Upper(STRING037) == "DOWN") || (Upper(STRING037) == "]")) || (Upper(STRING037) == " ")) Then
  686.                 AnsiPos 1, TINT003(INT031)
  687.                 Print STRING017, TSTRING013(INT031)
  688.                 If (INT031 == INT029 - 1) Then
  689.                     Print Chr(27) + "[u"
  690.                     Backup 80
  691.                     BOOLEAN009 = 1
  692.                     Break
  693.                     Goto LABEL016
  694.                 Endif
  695.                 Inc INT031
  696.                 :LABEL016
  697.                 Break
  698.                 Continue
  699.             Endif
  700.             If ((Upper(STRING037) == "UP") || (Upper(STRING037) == "[")) Then
  701.                 AnsiPos 1, TINT003(INT031)
  702.                 Print STRING017, TSTRING013(INT031)
  703.                 If (INT031 == 0) Then
  704.                     INT031 = INT029 - 1
  705.                     Goto LABEL017
  706.                 Endif
  707.                 Dec INT031
  708.                 :LABEL017
  709.                 Break
  710.                 Continue
  711.             Endif
  712.             If (((Upper(STRING037) == Chr(27)) || (Upper(STRING037) == "Q")) || (Upper(STRING037) == Chr(9))) Then
  713.                 AnsiPos 1, TINT003(INT031)
  714.                 Print STRING017, TSTRING013(INT031)
  715.                 Print Chr(27) + "[u"
  716.                 Backup 80
  717.                 BOOLEAN009 = 1
  718.                 Break
  719.                 Continue
  720.             Endif
  721.             If (Upper(STRING037) == Chr(13)) Then
  722.                 STRING038 = ScrText(23, TINT003(INT031), 1, 0)
  723.                 AnsiPos 23, TINT003(INT031)
  724.                 TBOOLEAN002(INT031) = 0
  725.                 If (STRING038 == StripAtx(STRING006)) Then
  726.                     TBOOLEAN001(INT031) = 0
  727.                     Print STRING008, " "
  728.                     Goto LABEL018
  729.                 Endif
  730.                 TBOOLEAN001(INT031) = 1
  731.                 Print STRING006
  732.                 :LABEL018
  733.                 If (INT031 == INT029 - 1) Then
  734.                     KbdStuff "Q"
  735.                     Goto LABEL019
  736.                 Endif
  737.                 KbdStuff "]"
  738.                 :LABEL019
  739.                 Continue
  740.             Endif
  741.             If (Upper(STRING037) == "N") Then
  742.                 If (BOOLEAN006) Goto LABEL021
  743.                 STRING038 = ScrText(23, TINT003(INT031), 1, 0)
  744.                 AnsiPos 23, TINT003(INT031)
  745.                 TBOOLEAN001(INT031) = 0
  746.                 If (STRING038 == StripAtx(STRING007)) Then
  747.                     TBOOLEAN002(INT031) = 0
  748.                     Print STRING008, " "
  749.                     Goto LABEL020
  750.                 Endif
  751.                 TBOOLEAN002(INT031) = 1
  752.                 Print STRING007
  753.                 :LABEL020
  754.                 If (INT031 == INT029 - 1) Then
  755.                     KbdStuff "Q"
  756.                     Goto LABEL021
  757.                 Endif
  758.                 KbdStuff "]"
  759.                 :LABEL021
  760.                 Continue
  761.             Endif
  762.             If (Upper(STRING037) == "V") Then
  763.                 Print Chr(27) + "[u"
  764.                 Print Chr(27) + "[s"
  765.                 DefColor
  766.                 SaveScrn
  767.                 STRING036 = Upper(ReadLine(STRING001, 2))
  768.                 Command 1, STRING036 + " " + TSTRING013(INT031)
  769.                 StartDisp 1
  770.                 RestScrn
  771.                 Print Chr(27) + "[u"
  772.                 Continue
  773.             Endif
  774.             If (Upper(STRING037) == "F") Then
  775.                 PROC007(INT031)
  776.                 KbdStuff "]"
  777.             Endif
  778.         EndWhile
  779.         If (BOOLEAN009) Break
  780.     EndWhile
  781.     BIGSTR001 = ""
  782.     BIGSTR002 = ""
  783.     BOOLEAN009 = 0
  784.     BOOLEAN010 = 0
  785.     INT034 = 0
  786.     INT035 = 0
  787.     Backup 80
  788.     For INT033 = 0 To INT029 - 1
  789.         If (TBOOLEAN001(INT033)) Then
  790.             Inc INT034
  791.             If (INT034 == 15) Then
  792.                 INT034 = 0
  793.                 Command 0, "flag " + BIGSTR001
  794.                 BIGSTR001 = ""
  795.                 BOOLEAN009 = 0
  796.             Endif
  797.             BIGSTR001 = BIGSTR001 + " " + TSTRING013(INT033)
  798.             BOOLEAN009 = 1
  799.         Endif
  800.         If (TBOOLEAN002(INT033)) Then
  801.             Inc INT035
  802.             BIGSTR002 = BIGSTR002 + " " + TSTRING013(INT033)
  803.             BOOLEAN010 = 1
  804.         Endif
  805.     Next
  806.     If (BOOLEAN009) Command 0, "flag " + BIGSTR001
  807.     If (BOOLEAN010) PROC008(BIGSTR002)
  808.     StartDisp 1
  809.     FUNCTION003 = INT030
  810.  
  811.     EndFunc
  812.  
  813.  
  814. ;------------------------------------------------------------------------------
  815.  
  816.     Procedure PROC007(Int INT036)
  817.  
  818.     Print Chr(27) + "[u"
  819.     Print Chr(27) + "[s"
  820.     DefColor
  821.     SaveScrn
  822.     Cls
  823.     FSeek 2, TDWORD001(INT036), 0
  824.     FGet 2, STRING015
  825.     Print STRING017, Left(STRING015, 12)
  826.     Print STRING020, Mid(STRING015, 13, 9)
  827.     Print STRING021, Mid(STRING015, 22, 11)
  828.     PrintLn STRING019, Mid(STRING015, 33, 45)
  829.     :LABEL022
  830.     If (Ferr(2)) Goto LABEL023
  831.     FGet 2, STRING015
  832.     If (Left(STRING015, 1) <> " ") Then
  833.         Goto LABEL023
  834.     Else
  835.         PrintLn STRING018, Space(32) + Right(STRING015, Len(STRING015) - 32)
  836.     Endif
  837.     Goto LABEL022
  838.     :LABEL023
  839.     Wait
  840.     StartDisp 1
  841.     RestScrn
  842.  
  843.     EndProc
  844.  
  845.  
  846. ;------------------------------------------------------------------------------
  847.  
  848.     Procedure PROC008(BigStr BIGSTR003)
  849.  
  850.     String   STRING039
  851.  
  852.     STRING039 = STRING009 + "\work\bcnk" + String(CurConf()) + "." + String(PcbNode())
  853.     If (Upper(ReadLine(STRING039, 1)) <> U_Name()) Then
  854.         FClose -1
  855.         Delete STRING039
  856.         FAppend 3, STRING039, 1, 0
  857.         FPutLn 3, U_Name()
  858.     Else
  859.         FClose -1
  860.         FAppend 3, STRING039, 1, 0
  861.     Endif
  862.     Tokenize BIGSTR003
  863.     STRING039 = GetToken()
  864.     Newline
  865.     While (1) Do
  866.         STRING039 = GetToken()
  867.         If (STRING039 == "") Break
  868.         FPutLn 3, STRING039 + " " + String(INT004)
  869.         FreshLine
  870.         PrintLn "@X0F", STRING039, " added for nuking"
  871.     EndWhile
  872.     FClose 3
  873.  
  874.     EndProc
  875.  
  876.  
  877. ;------------------------------------------------------------------------------
  878.  
  879.     Procedure PROC003(Int INT037, Int INT038, Var Boolean BOOLEAN011, Var Int INT039)
  880.  
  881.     DWord    DWORD002
  882.     Boolean  BOOLEAN012
  883.     Int      INT040
  884.     Int      INT041
  885.     Int      INT042
  886.     Int      INT043
  887.     Int      INT044
  888.     String   STRING040
  889.  
  890.     INT041 = 0
  891.     INT040 = 1
  892.     INT042 = 1
  893.     BOOLEAN012 = 0
  894.     INT043 = 0
  895.     BOOLEAN011 = 0
  896.     While (1) Do
  897.         FSeek INT037, -3, 1
  898.         FRead INT037, DWORD002, 3
  899.         FSeek INT037, -17, 1
  900.         FSeek INT037, 1, 1
  901.         If (Ferr(INT037)) Then
  902.             If (BOOLEAN003) PrintLn "Start of idxfile reached idx (back) =", String(INT040)
  903.             TSTRING012(INT040) = ""
  904.             BOOLEAN011 = 1
  905.             Break
  906.         Endif
  907.         FSeek INT038, DWORD002, 0
  908.         FGet INT038, STRING040
  909.         If (BOOLEAN003) PrintLn "1=", STRING040
  910.         TSTRING012(INT040) = STRING040
  911.         TDWORD001(INT043) = DWORD002
  912.         DWORD002 = DWORD002 + Len(STRING040) + 2
  913.         INT042 = INT040
  914.         Inc INT040
  915.         INT044 = 0
  916.         If (INT005 == 1) Then
  917.             Inc INT043
  918.         Else
  919.             While (1) Do
  920.                 FGet INT038, STRING040
  921.                 If (BOOLEAN003) PrintLn "2=", STRING040
  922.                 STRING040 = LTrim(STRING040, " ")
  923.                 If (Left(STRING040, 1) <> "|") Then
  924.                     Inc INT043
  925.                     Break
  926.                 Endif
  927.                 TSTRING012(INT040) = Space(32) + LTrim(STRING040, "|")
  928.                 Inc INT040
  929.                 Inc INT044
  930.                 If (INT044 >= INT005 - 1) Then
  931.                     Inc INT043
  932.                     Break
  933.                 Endif
  934.             EndWhile
  935.         Endif
  936.         If (BOOLEAN003) Print "IDX=", String(INT040)
  937.         If (BOOLEAN003) Wait
  938.         If (INT040 - 1 > U_PageLen - 1) Then
  939.             If (INT043 > 1) Then
  940.                 If (BOOLEAN003) Print "resetting idx", String(INT040)
  941.                 If (BOOLEAN003) Wait
  942.                 INT040 = INT042
  943.                 Dec INT043
  944.                 FSeek INT037, +16, 1
  945.             Endif
  946.             TSTRING012(INT040) = ""
  947.             Break
  948.         Endif
  949.         If (BOOLEAN012) Then
  950.             TSTRING012(INT040) = ""
  951.             Break
  952.         Endif
  953.     EndWhile
  954.     If (INT043 == 0) Return
  955.     INT039 = INT043
  956.  
  957.     EndProc
  958.  
  959.  
  960. ;------------------------------------------------------------------------------
  961.  
  962.     Procedure PROC004(Int INT045, Int INT046, Var Boolean BOOLEAN013, Var Int INT047)
  963.  
  964.     DWord    DWORD003
  965.     Boolean  BOOLEAN014
  966.     Boolean  BOOLEAN015
  967.     Int      INT048
  968.     Int      INT049
  969.     Int      INT050
  970.     Int      INT051
  971.     Int      INT052
  972.     String   STRING041
  973.  
  974.     INT049 = 0
  975.     INT048 = 1
  976.     INT050 = 1
  977.     BOOLEAN014 = 0
  978.     INT051 = 0
  979.     BOOLEAN015 = 0
  980.     BOOLEAN013 = 0
  981.     While (1) Do
  982.         FSeek INT045, 13, 1
  983.         FRead INT045, DWORD003, 3
  984.         If (Ferr(INT045)) Then
  985.             If (BOOLEAN003) PrintLn "End of idxfile reached lastidx =", String(INT050)
  986.             BOOLEAN013 = 1
  987.             TSTRING012(INT048) = ""
  988.             If (BOOLEAN003) Wait
  989.             Break
  990.         Endif
  991.         FSeek INT046, DWORD003, 0
  992.         FGet INT046, STRING041
  993.         If (BOOLEAN003) PrintLn "1=", STRING041
  994.         TSTRING012(INT048) = STRING041
  995.         TDWORD001(INT051) = DWORD003
  996.         DWORD003 = DWORD003 + Len(STRING041) + 2
  997.         INT050 = INT048
  998.         Inc INT048
  999.         If (STRING041 == "") Then
  1000.             INT047 = INT051
  1001.             Return
  1002.         Endif
  1003.         INT052 = 0
  1004.         If (INT005 == 1) Then
  1005.             Inc INT051
  1006.         Else
  1007.             While (1) Do
  1008.                 FGet INT046, STRING041
  1009.                 If (BOOLEAN003) PrintLn "2=", STRING041
  1010.                 STRING041 = LTrim(STRING041, " ")
  1011.                 If (Left(STRING041, 1) <> "|") Then
  1012.                     Inc INT051
  1013.                     Break
  1014.                 Endif
  1015.                 TSTRING012(INT048) = Space(32) + LTrim(STRING041, "|")
  1016.                 Inc INT048
  1017.                 Inc INT052
  1018.                 If (INT052 >= INT005 - 1) Then
  1019.                     Inc INT051
  1020.                     Break
  1021.                 Endif
  1022.             EndWhile
  1023.         Endif
  1024.         If (BOOLEAN003) Wait
  1025.         If (INT048 - 1 > U_PageLen - 1) Then
  1026.             If (INT051 > 1) Then
  1027.                 INT048 = INT050
  1028.                 Dec INT051
  1029.                 FSeek INT045, -16, 1
  1030.             Endif
  1031.             TSTRING012(INT048) = ""
  1032.             Break
  1033.         Endif
  1034.         If (BOOLEAN014) Then
  1035.             TSTRING012(INT048) = ""
  1036.             Break
  1037.         Endif
  1038.     EndWhile
  1039.     If (INT051 == 0) Return
  1040.     INT047 = INT051
  1041.  
  1042.     EndProc
  1043.  
  1044.  
  1045. ;------------------------------------------------------------------------------
  1046.  
  1047.     Function FUNCTION002(Int INT053, Int INT054) Int
  1048.  
  1049.     String   STRING042
  1050.     Int      INT056
  1051.     String   STRING043
  1052.  
  1053.     If (INT054 <> 0) Then
  1054.         If (TSTRING012(1) == "") Then
  1055.             If (INT054 <> 2) Then
  1056.                 DefColor
  1057.                 FreshLine
  1058.                 PrintLn STRING003
  1059.             Endif
  1060.             Goto LABEL024
  1061.         Endif
  1062.         DefColor
  1063.         Cls
  1064.         For INT056 = 1 To 60
  1065.             If (TSTRING012(INT056) == "") Break
  1066.             STRING042 = Left(TSTRING012(INT056), 1)
  1067.             If (STRING042 == " ") Then
  1068.                 PrintLn STRING018, TSTRING012(INT056)
  1069.                 Continue
  1070.             Endif
  1071.             Print STRING017, Left(TSTRING012(INT056), 12)
  1072.             Print STRING020, Mid(TSTRING012(INT056), 13, 9)
  1073.             Print STRING021, Mid(TSTRING012(INT056), 22, 11)
  1074.             PrintLn STRING019, Mid(TSTRING012(INT056), 33, 45)
  1075.         Next
  1076.         FreshLine
  1077.         :LABEL024
  1078.         If (INT054 == 2) Then
  1079.             FUNCTION002 = INT053
  1080.             Return
  1081.         Endif
  1082.     Endif
  1083.     Print STRING002
  1084.     FUNCTION002 = FUNCTION005(INT053, "")
  1085.  
  1086.     EndFunc
  1087.  
  1088.  
  1089. ;------------------------------------------------------------------------------
  1090.  
  1091.     Function FUNCTION001(String STRING043, String STRING044, Int INT057) Boolean
  1092.  
  1093.     Boolean  BOOLEAN017
  1094.     Date     DATE001
  1095.     Date     DATE002
  1096.     Time     TIME001
  1097.     Time     TIME002
  1098.  
  1099.     BOOLEAN017 = 0
  1100.     If (Exist(STRING043)) Goto LABEL025
  1101.     FUNCTION001 = 0
  1102.     FreshLine
  1103.     PrintLn "@X0CNo DIR file found, try again!"
  1104.     Return
  1105.     :LABEL025
  1106.     If (Exist(STRING044)) Then
  1107.         DATE001 = FileInf(STRING043, 2)
  1108.         TIME001 = FileInf(STRING043, 3)
  1109.         DATE002 = FileInf(STRING044, 2)
  1110.         TIME002 = FileInf(STRING044, 3)
  1111.         If (DATE001 == DATE002) Then
  1112.             If (ToInteger(TIME001) > ToInteger(TIME002)) Then
  1113.                 Delete STRING044
  1114.                 BOOLEAN017 = 1
  1115.             Endif
  1116.         ElseIf (DATE001 > DATE002) Then
  1117.             Delete STRING044
  1118.             BOOLEAN017 = 1
  1119.         Endif
  1120.     Else
  1121.         BOOLEAN017 = 1
  1122.     Endif
  1123.     If (BOOLEAN017) Then
  1124.         FreshLine
  1125.         PrintLn "@X0FUpdating index, please wait..."
  1126.         If (BOOLEAN003) Wait
  1127.         KbdStuff Chr(13)
  1128.         ShowOff
  1129.         Dir "L " + String(INT057) + " " + "@"
  1130.         ShowOn
  1131.     Endif
  1132.     FUNCTION001 = 1
  1133.  
  1134.     EndFunc
  1135.  
  1136.  
  1137. ;------------------------------------------------------------------------------
  1138. ;
  1139. ; Usage report (before postprocessing)
  1140. ;
  1141. ; ■ Statements used :
  1142. ;
  1143. ;    4       End
  1144. ;    2       Cls
  1145. ;    3       ClrEol
  1146. ;    13      Wait
  1147. ;    227     Goto 
  1148. ;    212     Let 
  1149. ;    47      Print 
  1150. ;    25      PrintLn 
  1151. ;    158     If 
  1152. ;    1       DispFile 
  1153. ;    7       FOpen 
  1154. ;    2       FAppend 
  1155. ;    12      FClose 
  1156. ;    6       FGet 
  1157. ;    2       FPutLn 
  1158. ;    6       StartDisp 
  1159. ;    1       GetUser
  1160. ;    7       DefColor
  1161. ;    3       Delete 
  1162. ;    2       InputStr 
  1163. ;    13      Return
  1164. ;    18      Inc 
  1165. ;    4       Dec 
  1166. ;    3       Newline
  1167. ;    2       Tokenize 
  1168. ;    7       KbdStuff 
  1169. ;    1       Dir 
  1170. ;    10      AnsiPos 
  1171. ;    8       Backup 
  1172. ;    1       Forward 
  1173. ;    8       FreshLine
  1174. ;    3       SaveScrn
  1175. ;    3       RestScrn
  1176. ;    1       ShowOn
  1177. ;    1       ShowOff
  1178. ;    24      FSeek 
  1179. ;    7       FRead 
  1180. ;    1       ScrFile 
  1181. ;    8       EndProc
  1182. ;    5       EndFunc
  1183. ;    3       Command 
  1184. ;
  1185. ;
  1186. ; ■ Functions used :
  1187. ;
  1188. ;    1       +
  1189. ;    23      -
  1190. ;    11      *
  1191. ;    71      +
  1192. ;    18      -
  1193. ;    79      ==
  1194. ;    8       <>
  1195. ;    7       <
  1196. ;    5       <=
  1197. ;    11      >
  1198. ;    11      >=
  1199. ;    122     !
  1200. ;    14      &&
  1201. ;    14      ||
  1202. ;    3       Len(
  1203. ;    34      Upper()
  1204. ;    6       Mid()
  1205. ;    7       Left()
  1206. ;    1       Right()
  1207. ;    3       Space()
  1208. ;    4       Ferr()
  1209. ;    19      Chr()
  1210. ;    4       LTrim()
  1211. ;    1       RTrim()
  1212. ;    2       U_Name()
  1213. ;    9       StripAtx()
  1214. ;    1       Strip()
  1215. ;    2       Inkey()
  1216. ;    14      String()
  1217. ;    2       Mask_Num()
  1218. ;    3       CurConf()
  1219. ;    1       PCBDat()
  1220. ;    1       PPEPath()
  1221. ;    1       PcbNode()
  1222. ;    9       ReadLine()
  1223. ;    17      GetToken()
  1224. ;    3       Exist()
  1225. ;    4       GetX()
  1226. ;    3       GetY()
  1227. ;    4       FileInf()
  1228. ;    1       TokCount()
  1229. ;    3       ScrText()
  1230. ;    3       ToInteger()
  1231. ;    3       ToInt()
  1232. ;    1       PCBMac()
  1233. ;
  1234. ;------------------------------------------------------------------------------
  1235. ;
  1236. ; Analysis flags : d
  1237. ;
  1238. ; d - Access PCBOARD.DAT ■ 2
  1239. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1240. ;     for many PPE so they can find various informations on the system
  1241. ;     (system paths, max number of lines in messages, ...) but it may also
  1242. ;     be a way to gather vital informations.
  1243. ;     ■ Search for : PCBDAT()
  1244. ;
  1245. ;------------------------------------------------------------------------------
  1246. ;
  1247. ; Postprocessing report
  1248. ;
  1249. ;    4       For/Next
  1250. ;    12      While/EndWhile
  1251. ;    96      If/Then or If/Then/Else
  1252. ;    0       Select Case
  1253. ;
  1254. ;------------------------------------------------------------------------------
  1255. ;                 AEGiS Corp - Break the routines, code against the machines!
  1256. ;------------------------------------------------------------------------------
  1257.